<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GMimeParser: GMime 3.0 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GMime 3.0 Reference Manual">
<link rel="up" href="Parsers.html" title="Parsing Messages and MIME Parts">
<link rel="prev" href="gmime-GMimeParserOptions.html" title="GMimeParserOptions">
<link rel="next" href="CryptoContexts.html" title="Cryptography Contexts">
<meta name="generator" content="GTK-Doc V1.32 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GMimeParser.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GMimeParser.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="Parsers.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gmime-GMimeParserOptions.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="CryptoContexts.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GMimeParser"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GMimeParser.top_of_page"></a>GMimeParser</span></h2>
<p>GMimeParser — Message and MIME part parser</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GMimeParser.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="GMimeParser.html#GMimeParserHeaderRegexFunc" title="GMimeParserHeaderRegexFunc ()">*GMimeParserHeaderRegexFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GMimeParser.html" title="GMimeParser"><span class="returnvalue">GMimeParser</span></a> *
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-new" title="g_mime_parser_new ()">g_mime_parser_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GMimeParser.html" title="GMimeParser"><span class="returnvalue">GMimeParser</span></a> *
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-new-with-stream" title="g_mime_parser_new_with_stream ()">g_mime_parser_new_with_stream</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-init-with-stream" title="g_mime_parser_init_with_stream ()">g_mime_parser_init_with_stream</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-get-persist-stream" title="g_mime_parser_get_persist_stream ()">g_mime_parser_get_persist_stream</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-set-persist-stream" title="g_mime_parser_set_persist_stream ()">g_mime_parser_set_persist_stream</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GMimeParser.html#GMimeFormat" title="enum GMimeFormat"><span class="returnvalue">GMimeFormat</span></a>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-get-format" title="g_mime_parser_get_format ()">g_mime_parser_get_format</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-set-format" title="g_mime_parser_set_format ()">g_mime_parser_set_format</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-get-respect-content-length" title="g_mime_parser_get_respect_content_length ()">g_mime_parser_get_respect_content_length</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-set-respect-content-length" title="g_mime_parser_set_respect_content_length ()">g_mime_parser_set_respect_content_length</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-set-header-regex" title="g_mime_parser_set_header_regex ()">g_mime_parser_set_header_regex</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint64</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-tell" title="g_mime_parser_tell ()">g_mime_parser_tell</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-eos" title="g_mime_parser_eos ()">g_mime_parser_eos</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GMimeObject.html" title="GMimeObject"><span class="returnvalue">GMimeObject</span></a> *
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-construct-part" title="g_mime_parser_construct_part ()">g_mime_parser_construct_part</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GMimeMessage.html" title="GMimeMessage"><span class="returnvalue">GMimeMessage</span></a> *
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-construct-message" title="g_mime_parser_construct_message ()">g_mime_parser_construct_message</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-get-mbox-marker" title="g_mime_parser_get_mbox_marker ()">g_mime_parser_get_mbox_marker</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint64</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-get-mbox-marker-offset" title="g_mime_parser_get_mbox_marker_offset ()">g_mime_parser_get_mbox_marker_offset</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint64</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-get-headers-begin" title="g_mime_parser_get_headers_begin ()">g_mime_parser_get_headers_begin</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint64</span>
</td>
<td class="function_name">
<a class="link" href="GMimeParser.html#g-mime-parser-get-headers-end" title="g_mime_parser_get_headers_end ()">g_mime_parser_get_headers_end</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GMimeParser.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GMimeParser.html#GMimeParser-struct" title="struct GMimeParser">GMimeParser</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GMimeParser.html#GMimeFormat" title="enum GMimeFormat">GMimeFormat</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GMimeParser.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GObject
    <span class="lineart">╰──</span> GMimeParser
</pre>
</div>
<div class="refsect1">
<a name="GMimeParser.description"></a><h2>Description</h2>
<p>A <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> parses a stream into a <a class="link" href="GMimeMessage.html" title="GMimeMessage"><span class="type">GMimeMessage</span></a> or other
<a class="link" href="GMimeObject.html" title="GMimeObject"><span class="type">GMimeObject</span></a> and can also handle parsing MBox formatted streams
into multiple <a class="link" href="GMimeMessage.html" title="GMimeMessage"><span class="type">GMimeMessage</span></a> objects.</p>
</div>
<div class="refsect1">
<a name="GMimeParser.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GMimeParserHeaderRegexFunc"></a><h3>GMimeParserHeaderRegexFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GMimeParserHeaderRegexFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>,
                               <em class="parameter"><code>const <span class="type">char</span> *header</code></em>,
                               <em class="parameter"><code>const <span class="type">char</span> *value</code></em>,
                               <em class="parameter"><code><span class="type">gint64</span> offset</code></em>,
                               <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Function signature for the callback to
<a class="link" href="GMimeParser.html#g-mime-parser-set-header-regex" title="g_mime_parser_set_header_regex ()"><code class="function">g_mime_parser_set_header_regex()</code></a>.</p>
<div class="refsect3">
<a name="GMimeParserHeaderRegexFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>The <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> object.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>header</p></td>
<td class="parameter_description"><p>The header field matched.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>value</p></td>
<td class="parameter_description"><p>The header field value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>offset</p></td>
<td class="parameter_description"><p>The header field offset.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>The user-supplied callback data.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-new"></a><h3>g_mime_parser_new ()</h3>
<pre class="programlisting"><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="returnvalue">GMimeParser</span></a> *
g_mime_parser_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Creates a new parser object.</p>
<div class="refsect3">
<a name="g-mime-parser-new.returns"></a><h4>Returns</h4>
<p> a new parser object.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-new-with-stream"></a><h3>g_mime_parser_new_with_stream ()</h3>
<pre class="programlisting"><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="returnvalue">GMimeParser</span></a> *
g_mime_parser_new_with_stream (<em class="parameter"><code><a class="link" href="GMimeStream.html" title="GMimeStream"><span class="type">GMimeStream</span></a> *stream</code></em>);</pre>
<p>Creates a new parser object preset to parse <em class="parameter"><code>stream</code></em>
.</p>
<div class="refsect3">
<a name="g-mime-parser-new-with-stream.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>stream</p></td>
<td class="parameter_description"><p>raw message or part stream</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-new-with-stream.returns"></a><h4>Returns</h4>
<p> a new parser object.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-init-with-stream"></a><h3>g_mime_parser_init_with_stream ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
g_mime_parser_init_with_stream (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>,
                                <em class="parameter"><code><a class="link" href="GMimeStream.html" title="GMimeStream"><span class="type">GMimeStream</span></a> *stream</code></em>);</pre>
<p>Initializes <em class="parameter"><code>parser</code></em>
 to use <em class="parameter"><code>stream</code></em>
.</p>
<p>WARNING: Initializing a parser with a stream is comparable to
selling your soul (<em class="parameter"><code>stream</code></em>
) to the devil (<em class="parameter"><code>parser</code></em>
). You are
basically giving the parser complete control of the stream, this
means that you had better not touch the stream so long as the
parser is still using it. This means no reading, writing, seeking,
or resetting of the stream. Anything that will/could change the
current stream's offset is PROHIBITED.</p>
<p>It is also recommended that you not use <a class="link" href="GMimeStream.html#g-mime-stream-tell" title="g_mime_stream_tell ()"><code class="function">g_mime_stream_tell()</code></a>
because it will not necessarily give you the current <em class="parameter"><code>parser</code></em>
 offset
since <em class="parameter"><code>parser</code></em>
 handles its own internal read-ahead buffer. Instead,
it is recommended that you use <a class="link" href="GMimeParser.html#g-mime-parser-tell" title="g_mime_parser_tell ()"><code class="function">g_mime_parser_tell()</code></a> if you have a
reason to need the current offset of the <em class="parameter"><code>parser</code></em>
.</p>
<div class="refsect3">
<a name="g-mime-parser-init-with-stream.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>stream</p></td>
<td class="parameter_description"><p>raw message or part stream</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-get-persist-stream"></a><h3>g_mime_parser_get_persist_stream ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
g_mime_parser_get_persist_stream (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>);</pre>
<p>Gets whether or not the underlying stream is persistent.</p>
<div class="refsect3">
<a name="g-mime-parser-get-persist-stream.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-get-persist-stream.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the <em class="parameter"><code>parser</code></em>
will leave the content on disk or
<code class="literal">FALSE</code> if it will load the content into memory.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-set-persist-stream"></a><h3>g_mime_parser_set_persist_stream ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
g_mime_parser_set_persist_stream (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>,
                                  <em class="parameter"><code><span class="type">gboolean</span> persist</code></em>);</pre>
<p>Sets whether or not the <em class="parameter"><code>parser</code></em>
's underlying stream is persistent.</p>
<p>If <em class="parameter"><code>persist</code></em>
 is <code class="literal">TRUE</code>, the <em class="parameter"><code>parser</code></em>
 will attempt to construct
messages/parts whose content will remain on disk rather than being
loaded into memory so as to reduce memory usage. This is the default.</p>
<p>If <em class="parameter"><code>persist</code></em>
 is <code class="literal">FALSE</code>, the <em class="parameter"><code>parser</code></em>
 will always load message content
into memory.</p>
<p>Note: This attribute only serves as a hint to the <em class="parameter"><code>parser</code></em>
. If the
underlying stream does not support seeking, then this attribute
will be ignored.</p>
<p>By default, this feature is enabled if the underlying stream is seekable.</p>
<div class="refsect3">
<a name="g-mime-parser-set-persist-stream.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>persist</p></td>
<td class="parameter_description"><p>persist attribute</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-get-format"></a><h3>g_mime_parser_get_format ()</h3>
<pre class="programlisting"><a class="link" href="GMimeParser.html#GMimeFormat" title="enum GMimeFormat"><span class="returnvalue">GMimeFormat</span></a>
g_mime_parser_get_format (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>);</pre>
<p>Gets the format that the parser is set to parse.</p>
<div class="refsect3">
<a name="g-mime-parser-get-format.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-get-format.returns"></a><h4>Returns</h4>
<p> the format that the parser is set to parse.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-set-format"></a><h3>g_mime_parser_set_format ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
g_mime_parser_set_format (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>,
                          <em class="parameter"><code><a class="link" href="GMimeParser.html#GMimeFormat" title="enum GMimeFormat"><span class="type">GMimeFormat</span></a> format</code></em>);</pre>
<p>Sets the format that the parser should expect the stream to be in.</p>
<div class="refsect3">
<a name="g-mime-parser-set-format.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html#GMimeFormat" title="enum GMimeFormat"><span class="type">GMimeFormat</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-get-respect-content-length"></a><h3>g_mime_parser_get_respect_content_length ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
g_mime_parser_get_respect_content_length
                               (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>);</pre>
<p>Gets whether or not <em class="parameter"><code>parser</code></em>
 is set to use Content-Length for
determining the offset of the end of the message.</p>
<div class="refsect3">
<a name="g-mime-parser-get-respect-content-length.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-get-respect-content-length.returns"></a><h4>Returns</h4>
<p> whether or not <em class="parameter"><code>parser</code></em>
is set to use Content-Length for
determining the offset of the end of the message.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-set-respect-content-length"></a><h3>g_mime_parser_set_respect_content_length ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
g_mime_parser_set_respect_content_length
                               (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>,
                                <em class="parameter"><code><span class="type">gboolean</span> respect_content_length</code></em>);</pre>
<p>Sets whether or not <em class="parameter"><code>parser</code></em>
 should respect Content-Length headers
when deciding where to look for the start of the next message. Only
used when the parser is also set to scan for From-lines.</p>
<p>Most notably useful when parsing broken Solaris mbox files (See
http://www.jwz.org/doc/content-length.html for details).</p>
<p>By default, this feature is disabled.</p>
<div class="refsect3">
<a name="g-mime-parser-set-respect-content-length.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>respect_content_length</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> if the parser should use Content-Length headers or <code class="literal">FALSE</code> otherwise.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-set-header-regex"></a><h3>g_mime_parser_set_header_regex ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
g_mime_parser_set_header_regex (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>,
                                <em class="parameter"><code>const <span class="type">char</span> *regex</code></em>,
                                <em class="parameter"><code><a class="link" href="GMimeParser.html#GMimeParserHeaderRegexFunc" title="GMimeParserHeaderRegexFunc ()"><span class="type">GMimeParserHeaderRegexFunc</span></a> header_cb</code></em>,
                                <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Sets the regular expression pattern <em class="parameter"><code>regex</code></em>
 on <em class="parameter"><code>parser</code></em>
. Whenever a
header matching the pattern <em class="parameter"><code>regex</code></em>
 is parsed, <em class="parameter"><code>header_cb</code></em>
 is called
with <em class="parameter"><code>user_data</code></em>
 as the user_data argument.</p>
<p>If <em class="parameter"><code>regex</code></em>
 is <code class="literal">NULL</code>, then the previously registered regex callback
is unregistered and no new callback is set.</p>
<p><span class="annotation">[<a href="http://foldoc.org/skip"><span class="acronym">skip</span></a>]</span></p>
<div class="refsect3">
<a name="g-mime-parser-set-header-regex.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>regex</p></td>
<td class="parameter_description"><p>regular expression</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>header_cb</p></td>
<td class="parameter_description"><p>callback function</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-tell"></a><h3>g_mime_parser_tell ()</h3>
<pre class="programlisting"><span class="returnvalue">gint64</span>
g_mime_parser_tell (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>);</pre>
<p>Gets the current stream offset from the parser's internal stream.</p>
<div class="refsect3">
<a name="g-mime-parser-tell.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-tell.returns"></a><h4>Returns</h4>
<p> the current stream offset from the parser's internal stream
or <code class="literal">-1</code> on error.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-eos"></a><h3>g_mime_parser_eos ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
g_mime_parser_eos (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>);</pre>
<p>Tests the end-of-stream indicator for <em class="parameter"><code>parser</code></em>
's internal stream.</p>
<div class="refsect3">
<a name="g-mime-parser-eos.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-eos.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> on EOS or <code class="literal">FALSE</code> otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-construct-part"></a><h3>g_mime_parser_construct_part ()</h3>
<pre class="programlisting"><a class="link" href="GMimeObject.html" title="GMimeObject"><span class="returnvalue">GMimeObject</span></a> *
g_mime_parser_construct_part (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>,
                              <em class="parameter"><code><a class="link" href="gmime-GMimeParserOptions.html#GMimeParserOptions" title="GMimeParserOptions"><span class="type">GMimeParserOptions</span></a> *options</code></em>);</pre>
<p>Constructs a MIME part from <em class="parameter"><code>parser</code></em>
.</p>
<div class="refsect3">
<a name="g-mime-parser-construct-part.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>a <a class="link" href="gmime-GMimeParserOptions.html#GMimeParserOptions" title="GMimeParserOptions"><span class="type">GMimeParserOptions</span></a> or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-construct-part.returns"></a><h4>Returns</h4>
<p>a MIME part based on <em class="parameter"><code>parser</code></em>
or <code class="literal">NULL</code> on
fail. </p>
<p><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>][<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-construct-message"></a><h3>g_mime_parser_construct_message ()</h3>
<pre class="programlisting"><a class="link" href="GMimeMessage.html" title="GMimeMessage"><span class="returnvalue">GMimeMessage</span></a> *
g_mime_parser_construct_message (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>,
                                 <em class="parameter"><code><a class="link" href="gmime-GMimeParserOptions.html#GMimeParserOptions" title="GMimeParserOptions"><span class="type">GMimeParserOptions</span></a> *options</code></em>);</pre>
<p>Constructs a MIME message from <em class="parameter"><code>parser</code></em>
.</p>
<div class="refsect3">
<a name="g-mime-parser-construct-message.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>a <a class="link" href="gmime-GMimeParserOptions.html#GMimeParserOptions" title="GMimeParserOptions"><span class="type">GMimeParserOptions</span></a> or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-construct-message.returns"></a><h4>Returns</h4>
<p>a MIME message or <code class="literal">NULL</code> on fail. </p>
<p><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>][<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-get-mbox-marker"></a><h3>g_mime_parser_get_mbox_marker ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
g_mime_parser_get_mbox_marker (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>);</pre>
<p>Gets the mbox-style From-line of the most recently parsed message
(gotten from <a class="link" href="GMimeParser.html#g-mime-parser-construct-message" title="g_mime_parser_construct_message ()"><code class="function">g_mime_parser_construct_message()</code></a>).</p>
<div class="refsect3">
<a name="g-mime-parser-get-mbox-marker.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-get-mbox-marker.returns"></a><h4>Returns</h4>
<p>the mbox-style From-line of the most recently parsed
message or <code class="literal">NULL</code> on error. </p>
<p><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-get-mbox-marker-offset"></a><h3>g_mime_parser_get_mbox_marker_offset ()</h3>
<pre class="programlisting"><span class="returnvalue">gint64</span>
g_mime_parser_get_mbox_marker_offset (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>);</pre>
<p>Gets the offset of the most recently parsed mbox-style From-line
(gotten from <a class="link" href="GMimeParser.html#g-mime-parser-construct-message" title="g_mime_parser_construct_message ()"><code class="function">g_mime_parser_construct_message()</code></a>).</p>
<div class="refsect3">
<a name="g-mime-parser-get-mbox-marker-offset.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-get-mbox-marker-offset.returns"></a><h4>Returns</h4>
<p> the offset of the most recently parsed mbox-style From-line
or <code class="literal">-1</code> on error.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-get-headers-begin"></a><h3>g_mime_parser_get_headers_begin ()</h3>
<pre class="programlisting"><span class="returnvalue">gint64</span>
g_mime_parser_get_headers_begin (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>);</pre>
<p>Gets the stream offset of the beginning of the headers of the most
recently parsed message.</p>
<div class="refsect3">
<a name="g-mime-parser-get-headers-begin.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-get-headers-begin.returns"></a><h4>Returns</h4>
<p> the offset of the beginning of the headers of the most
recently parsed message or <code class="literal">-1</code> on error.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-mime-parser-get-headers-end"></a><h3>g_mime_parser_get_headers_end ()</h3>
<pre class="programlisting"><span class="returnvalue">gint64</span>
g_mime_parser_get_headers_end (<em class="parameter"><code><a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> *parser</code></em>);</pre>
<p>Gets the stream offset of the end of the headers of the most
recently parsed message.</p>
<div class="refsect3">
<a name="g-mime-parser-get-headers-end.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>a <a class="link" href="GMimeParser.html" title="GMimeParser"><span class="type">GMimeParser</span></a> context</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-mime-parser-get-headers-end.returns"></a><h4>Returns</h4>
<p> the offset of the end of the headers of the most recently
parsed message or <code class="literal">-1</code> on error.</p>
</div>
</div>
</div>
<div class="refsect1">
<a name="GMimeParser.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GMimeParser-struct"></a><h3>struct GMimeParser</h3>
<pre class="programlisting">struct GMimeParser;</pre>
<p>A MIME parser context.</p>
<div class="refsect3">
<a name="GMimeParser.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GMimeFormat"></a><h3>enum GMimeFormat</h3>
<p>An enum of formats.</p>
<div class="refsect3">
<a name="GMimeFormat.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GMIME-FORMAT-MESSAGE:CAPS"></a>GMIME_FORMAT_MESSAGE</p></td>
<td class="enum_member_description">
<p>The stream contains a single message.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GMIME-FORMAT-MBOX:CAPS"></a>GMIME_FORMAT_MBOX</p></td>
<td class="enum_member_description">
<p>The stream is in the UNIX mbox format.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GMIME-FORMAT-MMDF:CAPS"></a>GMIME_FORMAT_MMDF</p></td>
<td class="enum_member_description">
<p>The stream is in the MMDF format.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.32</div>
</body>
</html>